package com.itheima.tliasmanagementspringboot.aspect;

import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

/**
 * 演示通知顺序
 */
@Component
//@Aspect
@Slf4j
//@Order(1)//控制优先级,数字越小优先级越高
public class Aspect4 {
    //定义一个切入点表达式,抽取重复的表达式
    @Pointcut("execution(* com.itheima.tliasmanagementspringboot.service.*.*(..))")
    public void point(){}

    //service层所有类中的所有方法中的加了Log注解的方法加入切入点(会被切面增强的方法)
    @Before("point() && @annotation(com.itheima.tliasmanagementspringboot.annotation.Log)")
    public void before(){
        log.info("前置通知");
    }
}
